package com.tedu.api.thread;

/**
 * setDaemon(boolean b) 设置线程为守护线程,true为守护线程
 *
 * 前台线程/用户线程：创建了一个线程
 * 后台线程/守护线程：创建一个线程，并且指定
 *
 * 案例：创建两个线程：t1   露丝   前台线程
 *                 t2   杰克   前台线程--指定守护线程
 * 结论：前台线程挂了，后台线程挂了
 *
 * 软件【工厂】--进程【车间】--线程【车间工人】
 * 所有线程挂了，【设置守护线程】进程挂了
 *
 * 守护线程多执行1次：特征：守护线程执行按照JVM虚拟机和操作系统调度策略管理
 *                      前台死亡，守护线程短暂性调取1次
 */
public class Thread_Daemon {
    public static void main(String[] args) {
        Thread t1 = new Thread(() -> {
            for (int i = 0; i < 5; i++) {
                System.out.println("前台线程：罗丝·迪威特布克特");
                try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
            }
                System.out.println("线程结束：露丝跳海了");


        });//前台/用户线程
        Thread t2=new Thread(()->{
            while (true){
                System.out.println("后台/守护线程：jack");
                try{

                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

            }
        });   //前台/用户线程--指定后台/守护线程
       // t2.setDaemon(true);
         t1.start();
         t2.start();
    }
}
